/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.cip.esymons.eventos.beans;

import java.util.ArrayList;
import java.util.List;
import org.cip.esymons.eventos.be.ModuloCurso;
import org.cip.esymons.eventos.bc.ModuloCursoDelegate;
import org.cip.esymons.eventos.be.Curso;
//import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;

/**
 *
 * @author LizardoR
 */
public class ModuloCursoController {

    private ModuloCursoDelegate delegado;
    private ModuloCurso modulo;
    private List<ModuloCurso> listaModulo;
    private Integer curCodigo;
    private Curso curso;

    /*********************** Constructor de la clase *************************/
    public ModuloCursoController() {
        inicializar();
    }

    /*************************** Sets y Gettters *****************************/
    /**
     * @return the modulo
     */
    public ModuloCurso getModulo() {
        return modulo;
    }

    /**
     * @param menu the modulo to set
     */
    public void setModulo(ModuloCurso modulo) {
        this.modulo = modulo;
    }

    /**
     * @return the listaModulo
     */
    public List<ModuloCurso> getListaModulo() {
        listar();
        return listaModulo;
    }

    /**
     * @param listaModulo the listaModulo to set
     */
    public void setListaModulo(List<ModuloCurso> listaModulo) {
        this.listaModulo = listaModulo;
    }

    /**
     * @return the curCodigo
     */
    public Integer getCurCodigo() {
        return curCodigo;
    }

    /**
     * @param curCodigo the curCodigo to set
     */
    public void setCurCodigo(Integer curCodigo) {
        this.curCodigo = curCodigo;
    }

    /**
     * @return the curso
     */
    public Curso getCurso() {
        return curso;
    }

    /**
     * @param curso the curso to set
     */
    public void setCurso(Curso curso) {
        this.curso = curso;
    }

    /**************************** Metodos ************************************/
    public String inicializar() {
        try {
            //CursoController controller = (CursoController) FacesContext.getCurrentInstance().getApplication().getVariableResolver().resolveVariable(FacesContext.getCurrentInstance(), "CursoController");
            //curCodigo = controller.getCursoAdapter().getCodigo();
            //PreEventoController controller = (PreEventoController) FacesContext.getCurrentInstance().getApplication().getVariableResolver().resolveVariable(FacesContext.getCurrentInstance(), "ModuloCursoController");
            //curCodigo = controller.getPreEvento().getPreCodigo();
            //controller = null;
            curso = new Curso();
            modulo = new ModuloCurso();
            delegado = new ModuloCursoDelegate();
            listaModulo = new ArrayList<ModuloCurso>();
            listar();
        } catch (Exception ex) {
            System.out.println("ERROR: " + ex.getMessage());
        }
        return "";
    }

    public String listar() {
        try {
            listaModulo = delegado.listarModuloXCurso(curCodigo);
        } catch (Exception ex) {
            System.out.println("ERROR: " + ex.getMessage());
        }
        return "listar";
    }

    public String agregarModulo() {
        curso.setEveCodigo(curCodigo);
        modulo.setCurCodigo(curso);
        delegado.create(modulo);
        return null;
    }

    public SelectItem[] getComboModulos() {
        try {
            System.out.println("Ingreso 1");
            SelectItem[] selects = null;
            //curCodigo = 3; //borrar esta linea
            //PreEventoDelegate delegadoPreevento = new PreEventoDelegate();
            //Preevento preEvento = new Preevento();
            curCodigo = (curCodigo == null) ? 0 : curCodigo;
            List<ModuloCurso> listaModulos = delegado.listarModuloXCurso(curCodigo);
            selects = new SelectItem[listaModulos.size()];
            int cont = 0;
            for (ModuloCurso modulos : listaModulos) {
                SelectItem item = new SelectItem(modulos.getModCodigo(), modulos.getModNombre());
                selects[cont++] = item;
            }
            return selects;
        } catch (Exception e) {
            System.out.println("Ingreso Error: " + e.getMessage());
            SelectItem[] selects = new SelectItem[1];
            SelectItem item = new SelectItem(null, "No existen modulos");
            selects[0] = item;
            return selects;
        }
    }

}
